# TODO *args 位置不定长参数
# 定义
def fn1(*args):
    print(type(args), args)

# 调用
# 以位置传参数,传任意多个实参
fn1(1, 2, 3, 'ab', True)


# TODO **kwargs 关键字不定长参数
def fn2(**kwargs):
    print(type(kwargs), kwargs)

# 调用
# 可以传入任意多个关键字方式的实参
fn2(a = 1, b = 2, c = 3, name = 'fu')

# 万能参数
def fn3(*args, **kwargs):
    print(args)
    print(kwargs)

fn3(1, 2, 3, a=1, b=2, c=3)


